package libra;

import com.alibaba.csp.sentinel.slots.block.RuleConstant;
import com.alibaba.csp.sentinel.slots.block.degrade.DegradeRule;

public class RuleTest {
	public static void main(String[] args) {
		// 创建降级规则
		DegradeRule degradeRule_code = new DegradeRule();
		// 设置受保护资源，将当前“规则”与“资源”进行绑定 
		degradeRule_code.setResource("1111");
		// 设置规则策略，当前案例设置为异常数统计
		degradeRule_code.setGrade( RuleConstant.DEGRADE_GRADE_EXCEPTION_COUNT );
		// 设置异常数阈值，即请求累计有2次异常，就进行熔断
		degradeRule_code.setCount(2);
		// 触发熔断的最小请求数，即在最小请求数中达到了异常阈值开始出发熔断机制
		degradeRule_code.setMinRequestAmount(2);
		// 统计时长（1.8开始引入），默认1000，单位ms
		degradeRule_code.setStatIntervalMs( 30*1000 );
		// 熔断的持续时长（时间窗口），单位s，超过时间窗口后，会恢复当前接口，但是恢复后的第一次就出现异常，会再次直接进入熔断状态，而不会再次进入判定状态。
		degradeRule_code.setTimeWindow(10);
		System.out.println( degradeRule_code );
	}
}
